﻿using System;
using System.Collections.Generic;
using Gp.Scripts.Core;
using Gp.Scripts.Data.Equip;
using Gp.Scripts.Data.Skills;

namespace Gp.Scripts.Equip {
    // [Serializable]
    // public class InjectorsWeaponInfo : WeaponTypeInfo<InjectorsWeaponType> , IReloadable{
    //     public InjectorsWeaponInfo(InjectorsWeaponType type, WeaponEntity entity) : base(type, entity) {
    //         maxAmmo = 1;
    //         ammoRemain = maxAmmo;
    //     }
    //
    //     public int ammoRemain;
    //     public int maxAmmo;
    //     public override bool IsBroken { get; set; }
    //
    //
    //     public override int GetDamage() {
    //         return WeaponType.damage;
    //     }
    //
    //
    //     public override IEnumerable<WeaponAbilityEntity> WeaponAbilities() {
    //         yield return WeaponAbilityEntity.Build<ReloadWeaponAbilityData>(Entity);
    //         yield return WeaponAbilityEntity.Build<SpitfireWeaponAbilityData>(Entity);
    //     }
    //
    //
    //     public void Consume() {
    //         ammoRemain--;
    //     }
    //     
    //
    //     public void Reload() {
    //         ammoRemain = maxAmmo;
    //     }
    //     
    //
    //     public IEnumerable<ResourceCost> ReloadCost() {
    //         yield return new ResourceCost(ResourceType.Action, 2);
    //     }
    //
    //     
    //     
    //     public void AfterAttack() {
    //         // 增加压制点
    //         CellGridSystem.Instance.CellGridModel.Container.Add(Unit, WeaponType.suppressPoint);
    //         ammoRemain = Math.Max(0, ammoRemain - 1);
    //     }
    //
    //
    //     public bool CanReload() {
    //         return ammoRemain < maxAmmo;
    //     }
    //
    //     public override bool CanAttack() {
    //         return !IsBroken && ammoRemain > 0;
    //     }
    //     
    // }
}